package com.example.chatroom.service;


import com.example.chatroom.dto.SimpleUserRole;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Map;

public interface UserInfoService  {

    /**
     * 检查是否存在此账号
     * @param username 账号
     * @return Boolean
     */
    Boolean isExistUserName(String username);

    /**
     * 注册账号
     * @param username 账号
     * @param password 密码
     * @param repassword 重复一次密码
     * @return String
     */
    String register(String username, String password, String repassword);

    /**
     * 登陆
     * @param username 账号
     * @param password 密码
     * @param request http请求
     * @return Boolean
     */
    Boolean login(String username, String password, HttpServletRequest request);

    /**
     * 注销
     * @param request http请求
     * @return
     */
    void logout(HttpServletRequest request);

    /**
     * 禁言用户
     * @param nickname 用户nickname
     * @return false禁言 true解禁
     */
    String forbidden(String nickname, HttpServletRequest httpServletRequest);

    /**
     * 更新昵称
     * @param nickname 新昵称
     * @param request httprequest
     * @return string
     */
    String updateNickname(String nickname,  HttpServletRequest request);

    /**
     * 更新密码
     * @param oldPassword 旧密码
     * @param password 新密码
     * @param request httprequest
     * @return string
     */
    String updatePassword(String oldPassword, String password ,HttpServletRequest request);

    /**
     * 获取userId
     * @param nickname 昵称
     * @return 用户id
     */
    Long getIdByNickname(String nickname);

    /**
     * 获取nickname
     * @param id 用户id
     * @return 昵称
     */
    String getNicknameById(Long id);

    /**
     * 用户角色和状态
     * @param nickname 昵称
     * @return
     */
    SimpleUserRole getUserState(String nickname);
}
